package org.zs.miracle.common.util.tree;

import java.util.List;

/**
 * 通用树节点抽象接口
 */
public interface ITreeNode<Id> {
  
  /**
   * 获取节点Id
   *
   * @return 节点Id
   */
  Id getId();
  
  /**
   * 设置节点id
   *
   * @param id id
   */
  void setId(Id id);
  
  /**
   * 获取节点父Id
   *
   * @return 父节点Id
   */
  Id getParentId();
  
  /**
   * 设置父节点Id
   *
   * @param parentId 父节点Id
   */
  void setParentId(Id parentId);
  
  /**
   * 获取子节点
   *
   * @return 子节点集合
   */
  List<ITreeNode<Id>> getChildren();
  
  /**
   * 设置字节点
   *
   * @param children 子节点集合
   */
  void setChildren(List<ITreeNode<Id>> children);
}